<?php
class Bagi_kelas extends CI_Model 
{

	function __construct()
	{
		parent::__construct();
	}

	function tahun_ter_atur() // Ambil data id dan nama tahun ajaran yg telah diatur di Pengaturan Kelas
	{
		$this->db->select('DISTINCT(a_kelas.id_m_th_ajaran), th_ajaran');
		$this->db->from('a_kelas');
		$this->db->join('m_th_ajaran','m_th_ajaran.id_m_th_ajaran = a_kelas.id_m_th_ajaran');
		$this->db->order_by('m_th_ajaran.id_m_th_ajaran','desc');
		
		$query = $this->db->get();		
		return $query->result();
	}

	function kelas($id_m_th_ajaran) // Menampilkan kelas dari tahun ajaran yang diminta
	{
		$this->db->select('id_a_kelas,a_kelas.id_m_th_ajaran,th_ajaran,a_kelas.id_m_kelas,kelas,a_kelas.id_m_pegawai,nama_lengkap,(select count(id_m_tholabah) from b_kelas where id_a_kelas = a_kelas.id_a_kelas) as jml');
		$this->db->from('a_kelas');
		$this->db->join('m_th_ajaran', 'm_th_ajaran.id_m_th_ajaran = a_kelas.id_m_th_ajaran');
		$this->db->join('m_kelas', 'm_kelas.id_m_kelas = a_kelas.id_m_kelas');
		$this->db->join('m_pegawai', 'm_pegawai.id_m_pegawai = a_kelas.id_m_pegawai');
		$this->db->where('a_kelas.id_m_th_ajaran', $id_m_th_ajaran);
		$this ->db->order_by('id_m_kelas');

		$query = $this->db->get();		
		return $query->result();
	}

	function tholabah($id_a_kelas) // Menampilkan tholabah dari kelas dalam tahun ajaran (id_a_kelas) yang diminta
	{
		$this->db->select('id_b_kelas,b_kelas.id_m_tholabah, nama_lengkap, jk, alamat');
		$this->db->from('b_kelas');
		$this->db->join('m_tholabah', 'm_tholabah.id_m_tholabah = b_kelas.id_m_tholabah');
		$this->db->where('id_a_kelas', $id_a_kelas);
		$this ->db->order_by('nama_lengkap');

		$query = $this->db->get();		
		return $query->result();
	}

	function meta_kelas($id_a_kelas)
	{
		$this->db->select('id_a_kelas,id_m_tingkat,kelas,id_m_j_pendidikan,a_kelas.id_m_th_ajaran,th_ajaran,nama_lengkap,(select count(id_m_tholabah) from b_kelas where id_a_kelas = '.$id_a_kelas.') as jml');
		$this->db->from('a_kelas');
		$this->db->join('m_kelas', 'm_kelas.id_m_kelas = a_kelas.id_m_kelas');
		$this->db->join('m_pegawai', 'm_pegawai.id_m_pegawai = a_kelas.id_m_pegawai');
		$this->db->join('m_th_ajaran', 'm_th_ajaran.id_m_th_ajaran = a_kelas.id_m_th_ajaran');
		$this->db->where('id_a_kelas', $id_a_kelas);

		$query = $this->db->get();		
		return $query->result();
	}

	function delete($id_b_kelas)
	{
		$this->db->where('id_b_kelas', $id_b_kelas);
		$delete = $this->db->delete('b_kelas');
		return $delete;
	}

	function tholabah_jp($id_jp) // Ambil tholabah dari jenjang yang diminta dan belum dimasukkan ke dalam kelas / tholabah baru
	{
		$this->db->select('id_m_tholabah,nama_lengkap,jk,alamat');
		$this->db->from('m_tholabah');
		$this->db->where('id_m_tholabah NOT IN (SELECT id_m_tholabah FROM b_kelas)');
		$this->db->where('id_m_j_pendidikan',$id_jp);
		
		$query = $this->db->get();		
		return $query->result();
	}

	function kelas_ter_atur($id_jp,$id_m_th_ajaran) // Ambil data id dan nama kelas yg telah diatur di Pengaturan Kelas pada jenjang yang diminta dan tahun kemarin
	{
		$this->db->select('DISTINCT(a_kelas.id_m_kelas), kelas');
		$this->db->from('a_kelas');
		$this->db->join('m_kelas','m_kelas.id_m_kelas = a_kelas.id_m_kelas');
		$this->db->where('id_m_j_pendidikan',$id_jp);
		$this->db->where('id_m_th_ajaran',$id_m_th_ajaran);
		$this->db->order_by('m_kelas.id_m_kelas');
		
		$query = $this->db->get();		
		return $query->result();
	}

	function list_tholabah_lama($id_a_kelas,$id_m_kelas,$id_m_th_ajaran,$id_m_th_ajaranSkrg)
	{
		$this->db->select('b_kelas.id_m_tholabah, b_kelas.id_a_kelas, a_kelas.id_m_kelas, a_kelas.id_m_th_ajaran, nama_lengkap, alamat, jk, kelas, th_ajaran');
		$this->db->from('b_kelas');
		$this->db->join('m_tholabah','m_tholabah.id_m_tholabah = b_kelas.id_m_tholabah');
		$this->db->join('a_kelas','a_kelas.id_a_kelas = b_kelas.id_a_kelas');
		$this->db->join('m_th_ajaran','m_th_ajaran.id_m_th_ajaran = a_kelas.id_m_th_ajaran');
		$this->db->join('m_kelas','m_kelas.id_m_kelas = a_kelas.id_m_kelas');
		$this->db->where('b_kelas.id_a_kelas !=', $id_a_kelas); // Agar jika request kelas+th ajaran sama tidak bisa dilakukan / data tidak muncul
		$this->db->where('b_kelas.id_m_tholabah NOT IN (SELECT id_m_tholabah FROM b_kelas WHERE id_a_kelas = '.$id_a_kelas.')'); // Agar jika request kelas+th ajaran sama tidak bisa dilakukan / data tidak muncul
		$this->db->where('b_kelas.id_m_tholabah NOT IN (SELECT id_m_tholabah FROM b_kelas JOIN a_kelas ON a_kelas.id_a_kelas = b_kelas.id_a_kelas WHERE id_m_th_ajaran = '.$id_m_th_ajaranSkrg.')'); // Agar tidak ada duplikat tholabah pada tahun yang sama
		$this->db->where('a_kelas.id_m_kelas', $id_m_kelas); // Ambil dari kelas yang diminta
		$this->db->where('a_kelas.id_m_th_ajaran', $id_m_th_ajaran); // Ambil dari th ajaran yang diminta
		$this->db->order_by('b_kelas.id_m_tholabah');
		
		$query = $this->db->get();		
		return $query->result();
	}

	function kelas_skrg($id_m_th_ajaranSkrg,$id_m_tingkat,$id_jp,$id_a_kelas)  // Ambil list kelas pada jenjang dan tahun ajaran yang sama tapi tidak pada kelas yang sama
	{
		$this->db->select('a_kelas.id_m_kelas, kelas');
		$this->db->from('a_kelas');
		$this->db->join('m_kelas','m_kelas.id_m_kelas = a_kelas.id_m_kelas');		
		$this->db->where('id_m_th_ajaran',$id_m_th_ajaranSkrg);
		$this->db->where('id_m_tingkat',$id_m_tingkat);
		$this->db->where('id_m_j_pendidikan',$id_jp);
		$this->db->where('a_kelas.id_a_kelas !=',$id_a_kelas);
		$this->db->order_by('a_kelas.id_m_kelas');
		
		$query = $this->db->get();		
		return $query->result();
	}

	function list_tholabah_pindah($id_m_kelasSkrg,$id_m_tingkat,$id_m_th_ajaranSkrg,$id_a_kelas)  // Ambil tholabah dari kelas pada tahun, tingkat dan jenjang yang sama tapi tidak pada kelas yang sama
	{
		$this->db->select('id_b_kelas,b_kelas.id_m_tholabah, nama_lengkap, alamat, jk');
		$this->db->from('b_kelas');
		$this->db->join('m_tholabah','m_tholabah.id_m_tholabah = b_kelas.id_m_tholabah');		
		$this->db->join('a_kelas','a_kelas.id_a_kelas = b_kelas.id_a_kelas');		
		$this->db->join('m_kelas','m_kelas.id_m_kelas = a_kelas.id_m_kelas');		
		$this->db->where('a_kelas.id_m_kelas',$id_m_kelasSkrg);
		$this->db->where('id_m_tingkat',$id_m_tingkat);
		$this->db->where('id_m_th_ajaran',$id_m_th_ajaranSkrg);
		$this->db->where('a_kelas.id_a_kelas !=',$id_a_kelas);
		$this->db->order_by('nama_lengkap');
		
		$query = $this->db->get();		
		return $query->result();
	}

	function save($dataInsert)
	{
		$query = $this->db->insert('b_kelas', $dataInsert);
		return $query;
	}

	function pindah($dataUpdate,$id_b_kelas)
	{
		$this->db->where('id_b_kelas', $id_b_kelas);
		$update = $this->db->update('b_kelas', $dataUpdate);
		return $update;
	}
}